package me.hl.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Created by haoliang on 2016/5/4.
 */

/**
 * ElementType 取值:
 * 　      1.CONSTRUCTOR:用于描述构造器
 * 　　　　2.FIELD:用于描述域
 * 　　　　3.LOCAL_VARIABLE:用于描述局部变量
 * 　　　　4.METHOD:用于描述方法
 * 　　　　5.PACKAGE:用于描述包
 * 　　　　6.PARAMETER:用于描述参数
 * 　　　　7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
 *
 * @Retention 定义了该Annotation被保留的时间长短：某些Annotation仅出现在源代码中，
 * 而被编译器丢弃；而另一些却被编译在class文件中；编译在class文件中的Annotation
 * 可能会被虚拟机忽略，而另一些在class被装载时将被读取（请注意并不影响class的执
 * 行，因为Annotation与class在使用上是被分离的）。使用这个meta-Annotation可以对
 * Annotation的“生命周期”限制。
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnno {
    public String name() default "planck";

    public String birth() default "2016-05-04";


}
